package com.zkingsoft.tools;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import com.matrix.core.constance.SystemErrorCode;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.tools.LogUtil;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class WxUtils {
	
	/**
	 * 获取随机数
	 * 
	 * @author HEMING
	 * @email 910000889@qq.com
	 * @date 2018年6月7日
	 * @param length
	 * @return
	 */

	public static String getRandomNum(int length) {
		String str = "0123456789";
		Random random = new Random();
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < length; ++i) {
			int number = random.nextInt(str.length());
			sb.append(str.charAt(number));
		}

		return sb.toString();
	}
	/**
	 * 生成订单号
	 * 年月日时分秒+4位随机数字
	 * @author HEMING
	 * @email 910000889@qq.com
	 * @date 2018年6月7日
	 * @param length
	 * @return
	 */

	public static String getOrderNum() {
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
		String dd=df.format(new Date());
		return dd+getRandomNum(5);
	}
	
	/**
	 * 获取拼团方案价格
	 * 
	 * @author HEMING
	 * @email 910000889@qq.com
	 * @date 2018年6月7日
	 * @param length
	 * @return
	 */

	public static String getCollagePrice(String colProgramme,String num) {
		JSONArray items = JSONArray.fromObject(colProgramme);
		for(int k=0;k<items.size();k++){
			JSONObject obj = items.getJSONObject(k);
			if(obj.get("num")!=null && obj.get("num").equals(num)){
				return obj.get("price").toString();
			}
		}
		return null;
	}
	
	/**
	 * 生成验证码
	 * 年月日时分秒+2位随机数字
	 * @author HEMING
	 * @email 910000889@qq.com
	 * @date 2018年6月7日
	 * @param length
	 * @return
	 */

	public static String getNumCode() {
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
		String dd=df.format(new Date());
		return dd+getRandomNum(4);
	}
	
	public static void main(String[] args) {
		/*String colProgramme="[{\"num\":\"3\",\"price\":\"40\",\"name\":\"3人团\"},{\"num\":\"5\",\"price\":\"30\",\"name\":\"5人团\"}]";
		System.out.println(getNumCode());*/
		 String add = getLocation("112.904496", "28.216681"); 
	}
	
    /**
     * 
     * @Desoription  根据经纬度获取定位信息
     * @author  何明
     * @param  参数
     * @return  返回值类型
     * @date  2018年04月13日
     */
    public static String getLocation(String log, String lat ){  
    	//lat<纬度>,lng<经度>
    	String urlString ="http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="+lat+","+log+"&output=json&pois=1&ak=xFaAvGxMbX9ToptGnBbOGdjOWPZPG5h7";
        String res = null;     
    	HttpRequest reqObj = new HttpRequest();
    	HttpResponse result;
		try {
			result = reqObj.sendHttpGet(urlString, null);
			JSONObject json = JSONObject.fromObject(result.getDataString().replace("renderReverse&&renderReverse(", "").replace("}})", "}}"));
			json=JSONObject.fromObject(json.getString("result"));
			res=json.toString();
			System.out.println(json.toString());
			LogUtil.info("定位数据：{}", json.toString());
		} catch (Exception e) {
			LogUtil.error("获取定位城市错误：{}", e,"");
			throw new GlobleException(SystemErrorCode.SYSTEM_UNKNOW_ERROR);
		}
        return res;    
    }  
    
    
    
}
